  //sequelize 链接数据库，配置一些数据库参数
  const {Sequelize, Model} = require('sequelize')
  const  { dbName, host, port, user, password} = require('../config/config').database
  const { unset, clone, isArray } = require('lodash')
  // const sequelize = new Sequelize(dbName, user, password, {})
  const sequelize = new Sequelize(dbName, user, password, {
    dialect: 'mysql', // 制定数据库类型
    host,
    port,
    logging: true,
    timezone: '+08:00', // 设置当前时间，北京时间
    define: { // 配置个性化
      timestamps: true, // 默认是true  false关闭创建时间字段 createAt updateAt
      underscored: true, // 将自动设置所有属性的字段参数为下划线命名方式
      // 作用域允许你定义常用查询,以便以后轻松使用. 作用域可以包括与常规查找器 where, include, limit 等所有相同的属性.
      scopes: {
        bh: {
          attributes: {
            exclude: ['updatedAt', 'deletedAt', 'createdAt']
          }
        },
      },
    }
  })
  
  // Json序列化
  Model.prototype.toJSON = function() {
    let data = clone(this.dataValues)
    // 排除时间字段
    unset(data, 'updatedAt')
    unset(data, 'createdAt')
    unset(data, 'deletedAt')
    console.log('this.exclude: ', this.exclude);
    // 需要额外排除的字段
    if(isArray(this.exclude)){
      
      this.exclude.forEach(
        (value)=>{
          unset(data,value)
        }
      )
    }

    return data
  }

  sequelize.sync({
    force: false //true 自动删除原来表，重新创建新的表
  })
  
  module.exports = {
    sequelize
  }
  
  